package com.aoip.telemetry.telemetry.configureui.business.pipeline.sthandle.service;

import com.aoip.telemetry.telemetry.entity.equipment.StInfoConfigEntity;
import com.aoip.telemetry.telemetry.entity.pipeline.RelStHandleEntity;

import java.util.List;

/**
 * @author chenbai
 * @version 1.0
 * @date 2022/2/14 11:18
 */
public interface RelStHandleService {

    /**
     * 测站关联处理器列表
     *
     * @param entity 测站关联处理器实体
     * @return java.util.List<com.aoip.telemetry.telemetry.entity.pipeline.RelStHandleEntity>
     * @author chenbai
     * @date 2022/2/14
     **/
    List<RelStHandleEntity> list(RelStHandleEntity entity);

    /**
     * @param id 测站关联处理器主键
     * @return com.aoip.telemetry.telemetry.entity.pipeline.PipelineHandleEntity
     * @author chenbai
     * @date 2022/2/11
     **/
    RelStHandleEntity relStHandle(String id);


    /**
     * 测站关联处理器新增
     *
     * @param entity 测站关联处理器实体
     * @return int
     * @author chenbai
     * @date 2022/2/11
     **/
    int insert(RelStHandleEntity entity);

    /**
     * 测站关联处理器修改
     *
     * @param entity 测站关联处理器实体
     * @return int
     * @author chenbai
     * @date 2022/2/11
     **/
    int update(RelStHandleEntity entity);


    /**
     * 测站关联处理器删除
     *
     * @param ids 测站关联处理器主键集合
     * @author chenbai
     * @date 2022/2/11
     **/
    void delete(long[] ids);

    /**
     * 初始化数据到redis缓存库
     *
     * @return int
     * @author chenbai
     * @date 2022/3/8
     **/
    int initCache();

    /**
     * 根据测站编码查询该测站关联的所有处理器,并排序。
     * 排序规则为：排序字段 * 策略类型（全局:1...单站:5）。
     *
     * @param stCode 测站编码
     * @return java.util.List<com.aoip.telemetry.telemetry.entity.pipeline.RelStHandleEntity>
     * @author chenbai
     * @date 2022/2/18
     **/
    List<RelStHandleEntity> getHandleListByStCode(String stCode);

    /**
     * 根据处理器id，查询该处理器下挂载的测站信息
     *
     * @param handleId 处理器id
     * @return java.util.List<com.aoip.telemetry.telemetry.entity.equipment.StInfoConfigEntity>
     * @author chenbai
     * @date 2022/2/18
     **/
    List<StInfoConfigEntity> getHandleListByHandleId(String handleId);
}
